﻿namespace Borg
{
    public interface IInstanceStoreModifier
    {
        void AddExtension(Extension extension);
        void RemoveExtension(Extension extension);

        void SetSharedExtension(Extension extension);

        void AddActivated(Extension extension, object extensionObject);
        void RemoveActivated(Extension extension);

        void AddOpened(Slot slot);
        void RemoveOpened(Slot slot);

        void AddPlugged(Slot slot, Plug plug);
        void RemovePlugged(Slot slot, Plug plug);

        void AddTag(Tag tag);
        void RemoveTag(Tag tag);

        void SetAutoOpen(Slot slot, bool value);
        void SetAutoPlug(Slot slot, bool value);

        void SetAutoTag(Slot slot, string[] value);
        void SetShared(Slot slot, bool value);

        void SetAutoPlug(Plug plug, bool value);
        void SetAutoTag(Plug plug, string[] value);
    }
}
